Флаги
O D I T S Z A P C * * * * * *
Команда:
SBB destination,source
Логика:
destination = destination - source - CF
Команда SBB вычитает операнд source из операнда destination, вычитает 1 из результата, если флаг переноса установлен (т.е. если CF = 1), и засылает результат по адресу destination. Оба операнда могут быть байтами или словами, и оба операнда могут быть двоичными числами со знаком или без знака.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
регистр,регистр | 3 | - | 2 | SBB DX,AX |
регистр,непоср.операнд | 4 | - | 3-4 | SBB BH,4 |
аккумулятор,непоср.оп. | 4 | - | 2-3 | SBB AX,8 |
регистр,память | 9(13)+EA | 1 | 2-4 | SBB DX,FEE |
память,регистр | 16(24)+EA | 2 | 2-4 | SBB SIGH,SI |
память,непоср.операнд | 17(25)+EA | 2 | 3-6 | SBB TOTAL,10 |
Примечания:
Команда SBB полезна для вычитания чисел, которые длиннее 16 битов, поскольку она вычитает заем (находящийся в CF) от предыдущего вычитания. Вы можете вычитать непосредственный операнд размером в байт из операнда destination, даже если он размером в слово; в этом случае перед вычитанием байт растягивается до 16 битов, занося в новые биты значение бита знака.